home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / synth_studies / resgrep03b / source / resources.h < prev    next >
C/C++ Source or Header  |  1999-09-15  |  3KB  |  88 lines

  1. #ifndef CC_RESOURCES_H
  2. #define CC_RESOURCES_H
  3. //
  4. // Das Headerfile für den ResGrep
  5. //
  6.  
  7. extern "C" {
  8. #include <stdio.h>
  9. };
  10. #include "res.h"
  11. #include "list.h"
  12.  
  13. class ResID : public node
  14. {
  15.                // in node->name steht der Name der RESOURCE, in
  16.                // node->pack der gepackte Typ und in node->pri
  17.                // die ID.
  18.    unsigned char  Attrs;      // Die Attribute der Resource.
  19.    unsigned long  DataOffset; // Beginn der Daten im File.
  20.  public:
  21.    ResID(MacResID *mri, unsigned long theResType,
  22.      void *theMacResNameList, unsigned long FileDataOffset);
  23.    ~ResID(void);
  24.  
  25.    int export(void);   // Exportiert die Daten
  26. };
  27.  
  28. class ResType : public node
  29. {
  30.                // in node->name steht der Name der Datei und in
  31.                // node->pack der gepackte Typ.
  32.    list theResID;      // Die Liste mit den ID-Einträgen.
  33.    short NumberOfResIDs; // Die Anzahl der abhängigen IDs.
  34.  public:
  35.    ResType(MacResType *mrt, MacResID *mri, void *theMacResNameList,
  36.        unsigned long FileDataOffset, char *name=NULL, long pri=0);
  37.    ~ResType(void);
  38.                // Und noch die gleichen (selben???) Methoden wie
  39.                // bei einem ResFile.
  40.  
  41.    void hidewin(struct IntuiMessage *msg); // Versteckt  das Listenfenster
  42.    void revealwin(struct IntuiMessage *msg); // Macht das Fenster sichtbar.
  43.    void closewin(struct IntuiMessage *msg);
  44.    void displaywin(struct MsgPort *msg, struct Menu *men);
  45.  
  46.    node *check(struct IntuiMessage *msg);
  47. };
  48.  
  49.  
  50. class ResFile : public node
  51. {
  52.                // in node::name steht der Filename der Datei
  53.                // (OHNE Pfad!)
  54.    list  theResType;   // Die Liste aller ResourceTypen dieses Files.
  55.    char *fullname;     // Vollständiger Name der Datei.
  56.    FILE *fp;           // Der Filepointer für 'fread()' und 'fwrite()'.
  57.    short NumberOfResTypes; // Anzahl der ResourceTypen in diesem File.
  58.    unsigned long  DataOffset; // Anfang der Daten im File.
  59.    unsigned short Attrs;   // Die Fileattribute.
  60.  public:
  61.    ResFile(void);
  62.    ~ResFile(void);     // Schließt das File und gibt alle abhängigen Listen
  63.                // frei.
  64.  
  65.    int open(char *name=NULL); // Öffnet ein ResourceFile, gibt das vorherige
  66.                // wieder frei (falls es schon eins gab.)
  67.    void close(void);   // Schließt ein File.
  68.  
  69.    FILE *getfp(void);
  70.  
  71.    // Dann noch die Funktionen, die die ResType-Liste betreffen:
  72.    void hidewin(struct IntuiMessage *msg); // Versteckt das Listenfenster
  73.    void hidechild(struct IntuiMessage *msg); // Versteckt dieses und
  74.                // ALLE von ihm abhängige Fenster
  75.    void revealwin(struct IntuiMessage *msg); // Macht das Fenster sichtbar.
  76.    void revealchild(struct IntuiMessage *msg); // Macht dieses
  77.                // und ALLE abhängigen sichtbar.
  78.    void closewin(struct IntuiMessage *msg);
  79.    void closechild(struct IntuiMessage *msg);
  80.    void displaywin(struct MsgPort *msg, struct Menu *);
  81.  
  82.    node *check(struct IntuiMessage *msg);
  83. };
  84.  
  85. extern list ResFileList;
  86. #endif
  87.  
  88.